YES 0.6890000000000001
↳ HASKELL
↳ LR
((break :: (a -> Bool) -> [a] -> ([a],[a])) :: (a -> Bool) -> [a] -> ([a],[a])) |
import qualified Prelude |
\(_,zs)→zs
zs0 (_,zs) = zs
\(ys,_)→ys
ys0 (ys,_) = ys
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
((break :: (a -> Bool) -> [a] -> ([a],[a])) :: (a -> Bool) -> [a] -> ([a],[a])) |
import qualified Prelude |
xs@(vw : vx)
vw : vx
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
((break :: (a -> Bool) -> [a] -> ([a],[a])) :: (a -> Bool) -> [a] -> ([a],[a])) |
import qualified Prelude |
undefined
| False
= undefined
undefined = undefined1
undefined0 True = undefined
undefined1 = undefined0 False
span p [] = ([],[]) span p (vw : vx)
| p vw
= (vw : ys,zs) | otherwise
= ([],vw : vx) where
vu43 = span p vx
ys = ys0 vu43
ys0 (ys,vy) = ys
zs = zs0 vu43
zs0 (vz,zs) = zs
span p [] = span3 p [] span p (vw : vx) = span2 p (vw : vx)
span2 p (vw : vx) =
span1 p vw vx (p vw) where
span0 p vw vx True = ([],vw : vx)
span1 p vw vx True = (vw : ys,zs) span1 p vw vx False = span0 p vw vx otherwise
vu43 = span p vx
ys = ys0 vu43
ys0 (ys,vy) = ys
zs = zs0 vu43
zs0 (vz,zs) = zs
span3 p [] = ([],[]) span3 wx wy = span2 wx wy
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
((break :: (a -> Bool) -> [a] -> ([a],[a])) :: (a -> Bool) -> [a] -> ([a],[a])) |
import qualified Prelude |
span1 p vw vx (p vw) where
span0 p vw vx True = ([],vw : vx)
span1 p vw vx True = (vw : ys,zs) span1 p vw vx False = span0 p vw vx otherwise
vu43 = span p vx
ys = ys0 vu43
ys0 (ys,vy) = ys
zs = zs0 vu43
zs0 (vz,zs) = zs
span2Zs0 wz xu (vz,zs) = zs
span2Span0 wz xu p vw vx True = ([],vw : vx)
span2Vu43 wz xu = span wz xu
span2Ys0 wz xu (ys,vy) = ys
span2Span1 wz xu p vw vx True = (vw : span2Ys wz xu,span2Zs wz xu) span2Span1 wz xu p vw vx False = span2Span0 wz xu p vw vx otherwise
span2Ys wz xu = span2Ys0 wz xu (span2Vu43 wz xu)
span2Zs wz xu = span2Zs0 wz xu (span2Vu43 wz xu)
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
(break :: (a -> Bool) -> [a] -> ([a],[a])) |
import qualified Prelude |
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ QDP
↳ QDPSizeChangeProof
new_span(xv3, :(xv40, xv41), ba) → new_span2Span1(xv3, xv41, xv40, ba)
new_span2Vu43(xv3, xv41, ba) → new_span(xv3, xv41, ba)
new_span2Span1(xv3, xv41, xv40, ba) → new_span2Vu43(xv3, xv41, ba)
new_span2Span1(xv3, xv41, xv40, ba) → new_span(xv3, xv41, ba)
From the DPs we obtained the following set of size-change graphs: